package com.lai.shop.service;

import com.lai.shop.vo.AddProductToCartVo;
import com.lai.shop.vo.CartVo;

public interface CartService {

    /**
     * 获取用户购物车
     * @return
     */
    CartVo cartList();

    /**
     * 根据商品id 删除购物项
     * @param productId
     */
    void deleteItem(Long productId);

    /**
     * 添加商品到购物车
     * @param addProductToCartVo
     */
    void addProductToCart(AddProductToCartVo addProductToCartVo);


    /**
     * 清空购物车
     */
    void clearCart();

    /**
     * 选中购物项
     * @param productId
     * @param check
     * @return
     */
    CartVo checkItem(Long productId, Integer check);

    /**
     * 计算购物项数量
     * @param productId
     * @param num
     * @return
     */
    CartVo countItem(Long productId, Integer num);

    /**
     * 清空选中的商品
     */
    void clearCheckCartItem();

    /**
     * 全选商品
     */
    void allCheck();

    /**
     * 根据用户id查询购物车
     * @param userId
     * @return
     */
    CartVo getCheckCartAndNewPrice(Long userId);

    CartVo getCartByUserId(Long id);
}
